/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package net.opengis.wfs20.impl;

import net.opengis.wfs20.MemberPropertyType;
import net.opengis.wfs20.SimpleFeatureCollectionType;
import net.opengis.wfs20.TupleType;
import net.opengis.wfs20.Wfs20Package;

import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;

import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;

import org.eclipse.emf.ecore.util.BasicFeatureMap;
import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.util.InternalEList;

import org.w3.xlink.ActuateType;
import org.w3.xlink.ShowType;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Member Property Type</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * </p>
 * <ul>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getMixed <em>Mixed</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getAny <em>Any</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getTuple <em>Tuple</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getSimpleFeatureCollectionGroup <em>Simple Feature Collection Group</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getSimpleFeatureCollection <em>Simple Feature Collection</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getActuate <em>Actuate</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getArcrole <em>Arcrole</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getHref <em>Href</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getRole <em>Role</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getShow <em>Show</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getState <em>State</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getTitle <em>Title</em>}</li>
 *   <li>{@link net.opengis.wfs20.impl.MemberPropertyTypeImpl#getType <em>Type</em>}</li>
 * </ul>
 *
 * @generated
 */
public class MemberPropertyTypeImpl extends EObjectImpl implements MemberPropertyType {
    /**
   * The cached value of the '{@link #getMixed() <em>Mixed</em>}' attribute list.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getMixed()
   * @generated
   * @ordered
   */
    protected FeatureMap mixed;

    /**
   * The default value of the '{@link #getActuate() <em>Actuate</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getActuate()
   * @generated
   * @ordered
   */
    protected static final ActuateType ACTUATE_EDEFAULT = ActuateType.ON_LOAD_LITERAL;

    /**
   * The cached value of the '{@link #getActuate() <em>Actuate</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getActuate()
   * @generated
   * @ordered
   */
    protected ActuateType actuate = ACTUATE_EDEFAULT;

    /**
   * This is true if the Actuate attribute has been set.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
    protected boolean actuateESet;

    /**
   * The default value of the '{@link #getArcrole() <em>Arcrole</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getArcrole()
   * @generated
   * @ordered
   */
    protected static final String ARCROLE_EDEFAULT = null;

    /**
   * The cached value of the '{@link #getArcrole() <em>Arcrole</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getArcrole()
   * @generated
   * @ordered
   */
    protected String arcrole = ARCROLE_EDEFAULT;

    /**
   * The default value of the '{@link #getHref() <em>Href</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getHref()
   * @generated
   * @ordered
   */
    protected static final String HREF_EDEFAULT = null;

    /**
   * The cached value of the '{@link #getHref() <em>Href</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getHref()
   * @generated
   * @ordered
   */
    protected String href = HREF_EDEFAULT;

    /**
   * The default value of the '{@link #getRole() <em>Role</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getRole()
   * @generated
   * @ordered
   */
    protected static final String ROLE_EDEFAULT = null;

    /**
   * The cached value of the '{@link #getRole() <em>Role</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getRole()
   * @generated
   * @ordered
   */
    protected String role = ROLE_EDEFAULT;

    /**
   * The default value of the '{@link #getShow() <em>Show</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getShow()
   * @generated
   * @ordered
   */
    protected static final ShowType SHOW_EDEFAULT = ShowType.NEW_LITERAL;

    /**
   * The cached value of the '{@link #getShow() <em>Show</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getShow()
   * @generated
   * @ordered
   */
    protected ShowType show = SHOW_EDEFAULT;

    /**
   * This is true if the Show attribute has been set.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
    protected boolean showESet;

    /**
   * The default value of the '{@link #getState() <em>State</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getState()
   * @generated
   * @ordered
   */
    protected static final Object STATE_EDEFAULT = null;

    /**
   * The cached value of the '{@link #getState() <em>State</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getState()
   * @generated
   * @ordered
   */
    protected Object state = STATE_EDEFAULT;

    /**
   * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getTitle()
   * @generated
   * @ordered
   */
    protected static final String TITLE_EDEFAULT = null;

    /**
   * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getTitle()
   * @generated
   * @ordered
   */
    protected String title = TITLE_EDEFAULT;

    /**
   * The default value of the '{@link #getType() <em>Type</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getType()
   * @generated
   * @ordered
   */
    protected static final String TYPE_EDEFAULT = "simple";

    /**
   * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @see #getType()
   * @generated
   * @ordered
   */
    protected String type = TYPE_EDEFAULT;

    /**
   * This is true if the Type attribute has been set.
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
    protected boolean typeESet;

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    protected MemberPropertyTypeImpl() {
    super();
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    protected EClass eStaticClass() {
    return Wfs20Package.Literals.MEMBER_PROPERTY_TYPE;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public FeatureMap getMixed() {
    if (mixed == null) {
      mixed = new BasicFeatureMap(this, Wfs20Package.MEMBER_PROPERTY_TYPE__MIXED);
    }
    return mixed;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public FeatureMap getAny() {
    return (FeatureMap)getMixed().<FeatureMap.Entry>list(Wfs20Package.Literals.MEMBER_PROPERTY_TYPE__ANY);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public TupleType getTuple() {
    return (TupleType)getMixed().get(Wfs20Package.Literals.MEMBER_PROPERTY_TYPE__TUPLE, true);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    public NotificationChain basicSetTuple(TupleType newTuple, NotificationChain msgs) {
    return ((FeatureMap.Internal)getMixed()).basicAdd(Wfs20Package.Literals.MEMBER_PROPERTY_TYPE__TUPLE, newTuple, msgs);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setTuple(TupleType newTuple) {
    ((FeatureMap.Internal)getMixed()).set(Wfs20Package.Literals.MEMBER_PROPERTY_TYPE__TUPLE, newTuple);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public FeatureMap getSimpleFeatureCollectionGroup() {
    return (FeatureMap)getMixed().<FeatureMap.Entry>list(Wfs20Package.Literals.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION_GROUP);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public SimpleFeatureCollectionType getSimpleFeatureCollection() {
    return (SimpleFeatureCollectionType)getSimpleFeatureCollectionGroup().get(Wfs20Package.Literals.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION, true);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    public NotificationChain basicSetSimpleFeatureCollection(SimpleFeatureCollectionType newSimpleFeatureCollection, NotificationChain msgs) {
    return ((FeatureMap.Internal)getSimpleFeatureCollectionGroup()).basicAdd(Wfs20Package.Literals.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION, newSimpleFeatureCollection, msgs);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setSimpleFeatureCollection(SimpleFeatureCollectionType newSimpleFeatureCollection) {
    ((FeatureMap.Internal)getSimpleFeatureCollectionGroup()).set(Wfs20Package.Literals.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION, newSimpleFeatureCollection);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public ActuateType getActuate() {
    return actuate;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setActuate(ActuateType newActuate) {
    ActuateType oldActuate = actuate;
    actuate = newActuate == null ? ACTUATE_EDEFAULT : newActuate;
    boolean oldActuateESet = actuateESet;
    actuateESet = true;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.SET, Wfs20Package.MEMBER_PROPERTY_TYPE__ACTUATE, oldActuate, actuate, !oldActuateESet));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void unsetActuate() {
    ActuateType oldActuate = actuate;
    boolean oldActuateESet = actuateESet;
    actuate = ACTUATE_EDEFAULT;
    actuateESet = false;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.UNSET, Wfs20Package.MEMBER_PROPERTY_TYPE__ACTUATE, oldActuate, ACTUATE_EDEFAULT, oldActuateESet));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public boolean isSetActuate() {
    return actuateESet;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public String getArcrole() {
    return arcrole;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setArcrole(String newArcrole) {
    String oldArcrole = arcrole;
    arcrole = newArcrole;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.SET, Wfs20Package.MEMBER_PROPERTY_TYPE__ARCROLE, oldArcrole, arcrole));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public String getHref() {
    return href;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setHref(String newHref) {
    String oldHref = href;
    href = newHref;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.SET, Wfs20Package.MEMBER_PROPERTY_TYPE__HREF, oldHref, href));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public String getRole() {
    return role;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setRole(String newRole) {
    String oldRole = role;
    role = newRole;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.SET, Wfs20Package.MEMBER_PROPERTY_TYPE__ROLE, oldRole, role));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public ShowType getShow() {
    return show;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setShow(ShowType newShow) {
    ShowType oldShow = show;
    show = newShow == null ? SHOW_EDEFAULT : newShow;
    boolean oldShowESet = showESet;
    showESet = true;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.SET, Wfs20Package.MEMBER_PROPERTY_TYPE__SHOW, oldShow, show, !oldShowESet));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void unsetShow() {
    ShowType oldShow = show;
    boolean oldShowESet = showESet;
    show = SHOW_EDEFAULT;
    showESet = false;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.UNSET, Wfs20Package.MEMBER_PROPERTY_TYPE__SHOW, oldShow, SHOW_EDEFAULT, oldShowESet));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public boolean isSetShow() {
    return showESet;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public Object getState() {
    return state;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setState(Object newState) {
    Object oldState = state;
    state = newState;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.SET, Wfs20Package.MEMBER_PROPERTY_TYPE__STATE, oldState, state));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public String getTitle() {
    return title;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setTitle(String newTitle) {
    String oldTitle = title;
    title = newTitle;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.SET, Wfs20Package.MEMBER_PROPERTY_TYPE__TITLE, oldTitle, title));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public String getType() {
    return type;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void setType(String newType) {
    String oldType = type;
    type = newType;
    boolean oldTypeESet = typeESet;
    typeESet = true;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.SET, Wfs20Package.MEMBER_PROPERTY_TYPE__TYPE, oldType, type, !oldTypeESet));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void unsetType() {
    String oldType = type;
    boolean oldTypeESet = typeESet;
    type = TYPE_EDEFAULT;
    typeESet = false;
    if (eNotificationRequired())
      eNotify(new ENotificationImpl(this, Notification.UNSET, Wfs20Package.MEMBER_PROPERTY_TYPE__TYPE, oldType, TYPE_EDEFAULT, oldTypeESet));
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public boolean isSetType() {
    return typeESet;
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
    switch (featureID) {
      case Wfs20Package.MEMBER_PROPERTY_TYPE__MIXED:
        return ((InternalEList<?>)getMixed()).basicRemove(otherEnd, msgs);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ANY:
        return ((InternalEList<?>)getAny()).basicRemove(otherEnd, msgs);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TUPLE:
        return basicSetTuple(null, msgs);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION_GROUP:
        return ((InternalEList<?>)getSimpleFeatureCollectionGroup()).basicRemove(otherEnd, msgs);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION:
        return basicSetSimpleFeatureCollection(null, msgs);
    }
    return super.eInverseRemove(otherEnd, featureID, msgs);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public Object eGet(int featureID, boolean resolve, boolean coreType) {
    switch (featureID) {
      case Wfs20Package.MEMBER_PROPERTY_TYPE__MIXED:
        if (coreType) return getMixed();
        return ((FeatureMap.Internal)getMixed()).getWrapper();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ANY:
        if (coreType) return getAny();
        return ((FeatureMap.Internal)getAny()).getWrapper();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TUPLE:
        return getTuple();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION_GROUP:
        if (coreType) return getSimpleFeatureCollectionGroup();
        return ((FeatureMap.Internal)getSimpleFeatureCollectionGroup()).getWrapper();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION:
        return getSimpleFeatureCollection();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ACTUATE:
        return getActuate();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ARCROLE:
        return getArcrole();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__HREF:
        return getHref();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ROLE:
        return getRole();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SHOW:
        return getShow();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__STATE:
        return getState();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TITLE:
        return getTitle();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TYPE:
        return getType();
    }
    return super.eGet(featureID, resolve, coreType);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void eSet(int featureID, Object newValue) {
    switch (featureID) {
      case Wfs20Package.MEMBER_PROPERTY_TYPE__MIXED:
        ((FeatureMap.Internal)getMixed()).set(newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ANY:
        ((FeatureMap.Internal)getAny()).set(newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TUPLE:
        setTuple((TupleType)newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION_GROUP:
        ((FeatureMap.Internal)getSimpleFeatureCollectionGroup()).set(newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION:
        setSimpleFeatureCollection((SimpleFeatureCollectionType)newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ACTUATE:
        setActuate((ActuateType)newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ARCROLE:
        setArcrole((String)newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__HREF:
        setHref((String)newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ROLE:
        setRole((String)newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SHOW:
        setShow((ShowType)newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__STATE:
        setState(newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TITLE:
        setTitle((String)newValue);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TYPE:
        setType((String)newValue);
        return;
    }
    super.eSet(featureID, newValue);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public void eUnset(int featureID) {
    switch (featureID) {
      case Wfs20Package.MEMBER_PROPERTY_TYPE__MIXED:
        getMixed().clear();
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ANY:
        getAny().clear();
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TUPLE:
        setTuple((TupleType)null);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION_GROUP:
        getSimpleFeatureCollectionGroup().clear();
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION:
        setSimpleFeatureCollection((SimpleFeatureCollectionType)null);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ACTUATE:
        unsetActuate();
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ARCROLE:
        setArcrole(ARCROLE_EDEFAULT);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__HREF:
        setHref(HREF_EDEFAULT);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ROLE:
        setRole(ROLE_EDEFAULT);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SHOW:
        unsetShow();
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__STATE:
        setState(STATE_EDEFAULT);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TITLE:
        setTitle(TITLE_EDEFAULT);
        return;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TYPE:
        unsetType();
        return;
    }
    super.eUnset(featureID);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public boolean eIsSet(int featureID) {
    switch (featureID) {
      case Wfs20Package.MEMBER_PROPERTY_TYPE__MIXED:
        return mixed != null && !mixed.isEmpty();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ANY:
        return !getAny().isEmpty();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TUPLE:
        return getTuple() != null;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION_GROUP:
        return !getSimpleFeatureCollectionGroup().isEmpty();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SIMPLE_FEATURE_COLLECTION:
        return getSimpleFeatureCollection() != null;
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ACTUATE:
        return isSetActuate();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ARCROLE:
        return ARCROLE_EDEFAULT == null ? arcrole != null : !ARCROLE_EDEFAULT.equals(arcrole);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__HREF:
        return HREF_EDEFAULT == null ? href != null : !HREF_EDEFAULT.equals(href);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__ROLE:
        return ROLE_EDEFAULT == null ? role != null : !ROLE_EDEFAULT.equals(role);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__SHOW:
        return isSetShow();
      case Wfs20Package.MEMBER_PROPERTY_TYPE__STATE:
        return STATE_EDEFAULT == null ? state != null : !STATE_EDEFAULT.equals(state);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TITLE:
        return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
      case Wfs20Package.MEMBER_PROPERTY_TYPE__TYPE:
        return isSetType();
    }
    return super.eIsSet(featureID);
  }

    /**
   * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
   * @generated
   */
    @Override
    public String toString() {
    if (eIsProxy()) return super.toString();

    StringBuilder result = new StringBuilder(super.toString());
    result.append(" (mixed: ");
    result.append(mixed);
    result.append(", actuate: ");
    if (actuateESet) result.append(actuate); else result.append("<unset>");
    result.append(", arcrole: ");
    result.append(arcrole);
    result.append(", href: ");
    result.append(href);
    result.append(", role: ");
    result.append(role);
    result.append(", show: ");
    if (showESet) result.append(show); else result.append("<unset>");
    result.append(", state: ");
    result.append(state);
    result.append(", title: ");
    result.append(title);
    result.append(", type: ");
    if (typeESet) result.append(type); else result.append("<unset>");
    result.append(')');
    return result.toString();
  }

} //MemberPropertyTypeImpl
